package com.sky.utils;

import java.util.Collection;
import java.util.Map;

public class ParaVerifUtil {

    // 检查对象是否为null（泛型方法）
    public static <T> boolean isNull(T obj) {
        return obj == null;
    }

    // 检查字符串是否为空（null或空字符串）
    public static boolean isEmpty(String str) {
        return str == null || str.isEmpty();
    }

    // 检查字符串是否为空白（null或全空格）
    public static boolean isBlank(String str) {
        return str == null || str.trim().isEmpty();
    }

    // 检查集合是否为空（null或空集合）
    public static boolean isEmpty(Collection<?> collection) {
        return collection == null || collection.isEmpty();
    }

    // 检查Map是否为空（null或空Map）
    public static boolean isEmpty(Map<?, ?> map) {
        return map == null || map.isEmpty();
    }

    // 检查泛型数组是否为空（null或空数组）
    public static <T> boolean isEmpty(T[] array) {
        return array == null || array.length == 0;
    }

    // 检查int数组是否为空
    public static boolean isEmpty(int[] array) {
        return array == null || array.length == 0;
    }

    // 检查long数组是否为空
    public static boolean isEmpty(long[] array) {
        return array == null || array.length == 0;
    }

    // 检查boolean数组是否为空
    public static boolean isEmpty(boolean[] array) {
        return array == null || array.length == 0;
    }

    // 扩展：通用空对象检查（支持String、Collection、Map、Array）
    public static boolean isEmpty(Object obj) {
        if (obj == null) {
            return true;
        }
        if (obj instanceof String) {
            return ((String) obj).isEmpty();
        }
        if (obj instanceof Collection) {
            return ((Collection<?>) obj).isEmpty();
        }
        if (obj instanceof Map) {
            return ((Map<?, ?>) obj).isEmpty();
        }
        if (obj.getClass().isArray()) {
            return java.lang.reflect.Array.getLength(obj) == 0;
        }
        return false;
    }
}